The present invention relates to program information managing apparatus for a programming support system which develops a desired program for a computer while retrieving programs (parts) of the basic function already developed, and more particularly to such program information managing apparatus which improve the rate of reuse, productivity and reliability of programs.
Programming support systems related to the present invention, especially, systems which reuse the conventional programs make a target program by way of the following steps (1)-(3):
(1) A step in which the system understands the required specifications (the purpose of the program) given by the user and divides the specifications into sets of simpler specifications; PA1 (2) A step in which it is checked whether parts of specifications close to the individual specifications after the division exists or not, and if so, the parts are retrieved and a part of the program is corrected so as to satisfy the individual specifications; and PA1 (3) A step in which customized parts are combined into a desired program. PA1 (a) Three kinds of processes for storing parts: a process for storing source codes as parts, a process for storing design information as parts and a process for storing the specifications of design as parts. The important process is to have the source codes as parts. The source codes mean programs written in a programming language; and PA1 (b) Three important kinds of retrieving processes: retrieval using a knowledge base, retrieval using a system of parts, and retrieval of similar parts. The retrieval using a knowledge base is to retrieve a part in accordance with the attributes of the individual parts using a knowledge base in which the functions and attributes of parts which indicate the nature of the parts as keywords are related to each other. The retrieval using a system of parts is to arrange parts systematically when the parts are beforehand registered and to use the arrangement for retrieving purposes. The retrieval of similar parts is to retrieve similar parts using the predetermined definition of similarity.
Therefore, in a program reuse system, three important points are a process for storing a part to be retrieved, a process for retrieving a part, and a process for correcting a part.
For these points, the related systems employ the following processes:
For example, such related arts are described in "Automatic Programming by Fabrication of Reusable Program Components" by Seiichi KOMIYA and Minoru HARADA, INFORMATION PROCESSING Vol. 28, No. 10 (1987).
In the above related art, enough measures are not taken to retrieve a program having functions not belonging to the definition of similarity when a program a little different from the existing programs is made.
The existing programs can be reused only when they can realize a function coincident with that of a target program or when they can be synthesized into the target program.
Even if a system has a function to retrieve a program similar to the existing programs, it is necessary to give a similar definition. If this definition is not given, the existing program cannot be reused. The intention of a program to be reused and the programming technique used for a program are not clear, so that it takes much time to understand how to change programs for the user's purpose of use. If correct understanding cannot be done, improper correction may be done to thereby impair the reliability of the program.
Since the systems have no retrievable data on the course of programming, the intermediate programs prepared or important ideas discovered in the programming process cannot be used, the history of programming would be lost, and it cannot be understand how to change the program in order to avoid the inclusion of errors.